Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(loki): switch to single binary deployment mode #3318

Merged
merged 3 commits into from
Oct 14, 2024

Conversation

jazzlyn
Copy link
Collaborator

@jazzlyn jazzlyn commented Jul 21, 2024

awaits grafana/loki#13572 to support ruler sidecar

Copy link

sonarcloud bot commented Jul 21, 2024

@tyriis-automation
Copy link
Contributor

tyriis-automation bot commented Jul 21, 2024

--- kubernetes/talos-flux/apps/observability/loki/app Kustomization: flux-system/apps-loki HelmRelease: observability/loki

+++ kubernetes/talos-flux/apps/observability/loki/app Kustomization: flux-system/apps-loki HelmRelease: observability/loki

@@ -29,30 +29,18 @@

     cleanupOnFail: true
     remediation:
       remediateLastFailure: true
       retries: 3
   values:
     backend:
-      extraVolumes:
-      - configMap:
-          name: loki-alerting-rules
-        name: loki-rules
-      persistence:
-        size: 20Gi
-        storageClass: openebs-hostpath
-      replicas: 2
-    deploymentMode: SimpleScalable
+      replicas: 0
+    chunksCache:
+      enabled: false
+    deploymentMode: SingleBinary
     gateway:
-      image:
-        registry: ghcr.io
-      ingress:
-        enabled: false
-      replicas: 2
-      service:
-        labels:
-          prometheus.io/service-monitor: 'false'
+      enabled: false
     loki:
       analytics:
         reporting_enabled: false
       auth_enabled: false
       compactor:
         delete_request_store: s3
@@ -100,30 +88,38 @@

         enabled: true
         labels:
           grafana_dashboard: 'true'
       serviceMonitor:
         enabled: true
         metricsInstance:
-          enabled: false
+          enabled: true
     read:
+      replicas: 0
+    resultsCache:
+      enabled: false
+    sidecar:
+      rules:
+        folder: /rules/fake
+        searchNamespace: ALL
+    singleBinary:
       extraVolumes:
       - configMap:
           name: loki-alerting-rules
         name: loki-rules
-      replicas: 2
-    sidecar:
-      rules:
-        folder: /rules/fake
-        searchNamespace: ALL
-    test:
-      enabled: false
-    write:
       persistence:
         size: 20Gi
         storageClass: openebs-hostpath
       replicas: 2
+      resources:
+        requests:
+          cpu: 10m
+          memory: 100Mi
+    test:
+      enabled: false
+    write:
+      replicas: 0
   valuesFrom:
   - kind: Secret
     name: loki-s3
     targetPath: loki.storage.bucketNames.chunks
     valuesKey: S3_BUCKET_NAME
   - kind: Secret
--- kubernetes/talos-flux/apps/observability/grafana/app Kustomization: flux-system/apps-grafana ConfigMap: observability/grafana-datasources

+++ kubernetes/talos-flux/apps/observability/grafana/app Kustomization: flux-system/apps-grafana ConfigMap: observability/grafana-datasources

@@ -19,13 +19,13 @@

         access: proxy
         url: http://prometheus-prometheus:9090/
         isDefault: true
       - name: Loki
         type: loki
         access: proxy
-        url: http://loki-gateway:80/
+        url: http://loki:3100/
       - name: GitHub
         type: grafana-github-datasource
         jsonData:
           owner: tyriis
           repository: home-ops
         secureJsonData:
--- kubernetes/talos-flux/apps/observability/promtail/app Kustomization: flux-system/apps-promtail HelmRelease: observability/promtail

+++ kubernetes/talos-flux/apps/observability/promtail/app Kustomization: flux-system/apps-promtail HelmRelease: observability/promtail

@@ -17,13 +17,13 @@

         namespace: flux-system
       version: 6.16.6
   interval: 30m
   values:
     config:
       clients:
-      - url: http://loki-gateway/loki/api/v1/push
+      - url: http://loki/loki/api/v1/push
       - url: https://..PLACEHOLDER..:[email protected]/loki/api/v1/push
     extraArgs:
     - -client.external-labels=hostname=$(HOSTNAME),cluster=talos-flux
     - -config.expand-env
     serviceMonitor:
       enabled: true

@tyriis-automation
Copy link
Contributor

tyriis-automation bot commented Jul 21, 2024

--- HelmRelease: observability/loki PodDisruptionBudget: observability/loki-backend

+++ HelmRelease: observability/loki PodDisruptionBudget: observability/loki-backend

@@ -1,19 +0,0 @@

----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
-  name: loki-backend
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: backend
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: backend
-  maxUnavailable: 1
-
--- HelmRelease: observability/loki PodDisruptionBudget: observability/loki-memcached-chunks-cache

+++ HelmRelease: observability/loki PodDisruptionBudget: observability/loki-memcached-chunks-cache

@@ -1,18 +0,0 @@

----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
-  name: loki-memcached-chunks-cache
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: memcached-chunks-cache
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: memcached-chunks-cache
-  maxUnavailable: 1
-
--- HelmRelease: observability/loki PodDisruptionBudget: observability/loki-gateway

+++ HelmRelease: observability/loki PodDisruptionBudget: observability/loki-gateway

@@ -1,19 +0,0 @@

----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
-  name: loki-gateway
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: gateway
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: gateway
-  maxUnavailable: 1
-
--- HelmRelease: observability/loki PodDisruptionBudget: observability/loki-read

+++ HelmRelease: observability/loki PodDisruptionBudget: observability/loki-read

@@ -1,19 +0,0 @@

----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
-  name: loki-read
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: read
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: read
-  maxUnavailable: 1
-
--- HelmRelease: observability/loki PodDisruptionBudget: observability/loki-memcached-results-cache

+++ HelmRelease: observability/loki PodDisruptionBudget: observability/loki-memcached-results-cache

@@ -1,18 +0,0 @@

----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
-  name: loki-memcached-results-cache
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: memcached-results-cache
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: memcached-results-cache
-  maxUnavailable: 1
-
--- HelmRelease: observability/loki PodDisruptionBudget: observability/loki-write

+++ HelmRelease: observability/loki PodDisruptionBudget: observability/loki-write

@@ -1,19 +0,0 @@

----
-apiVersion: policy/v1
-kind: PodDisruptionBudget
-metadata:
-  name: loki-write
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: write
-spec:
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: write
-  maxUnavailable: 1
-
--- HelmRelease: observability/loki ConfigMap: observability/loki

+++ HelmRelease: observability/loki ConfigMap: observability/loki

@@ -13,35 +13,20 @@

 
     analytics:
       reporting_enabled: false
     auth_enabled: false
     bloom_build:
       builder:
-        planner_address: loki-backend-headless.observability.svc.cluster.local:9095
+        planner_address: ""
       enabled: false
     bloom_gateway:
       client:
-        addresses: dnssrvnoa+_grpc._tcp.loki-backend-headless.observability.svc.cluster.local
+        addresses: ""
       enabled: false
-    chunk_store_config:
-      chunk_cache_config:
-        background:
-          writeback_buffer: 500000
-          writeback_goroutines: 1
-          writeback_size_limit: 500MB
-        default_validity: 0s
-        memcached:
-          batch_size: 4
-          parallelism: 5
-        memcached_client:
-          addresses: dnssrvnoa+_memcached-client._tcp.loki-chunks-cache.observability.svc
-          consistent_hash: true
-          max_idle_conns: 72
-          timeout: 2000ms
     common:
-      compactor_address: 'http://loki-backend:3100'
+      compactor_address: 'http://loki:3100'
       path_prefix: /var/loki
       replication_factor: 3
       storage:
         s3:
           access_key_id: ..PLACEHOLDER..
           bucketnames: ..PLACEHOLDER..
@@ -77,25 +62,12 @@

       join_members:
       - loki-memberlist
     pattern_ingester:
       enabled: false
     query_range:
       align_queries_with_step: true
-      cache_results: true
-      results_cache:
-        cache:
-          background:
-            writeback_buffer: 500000
-            writeback_goroutines: 1
-            writeback_size_limit: 500MB
-          default_validity: 12h
-          memcached_client:
-            addresses: dnssrvnoa+_memcached-client._tcp.loki-results-cache.observability.svc
-            consistent_hash: true
-            timeout: 500ms
-            update_interval: 1m
     ruler:
       alertmanager_url: http://prometheus-alertmanager.observability.svc.cluster.local:9093
       enable_alertmanager_v2: true
       enable_api: true
       rule_path: /rules/fake
       storage:
@@ -119,17 +91,17 @@

       log_level: info
     storage_config:
       bloom_shipper:
         working_directory: /var/loki/data/bloomshipper
       boltdb_shipper:
         index_gateway_client:
-          server_address: dns+loki-backend-headless.observability.svc.cluster.local:9095
+          server_address: ""
       hedging:
         at: 250ms
         max_per_second: 20
         up_to: 3
       tsdb_shipper:
         index_gateway_client:
-          server_address: dns+loki-backend-headless.observability.svc.cluster.local:9095
+          server_address: ""
     tracing:
       enabled: false
 
--- HelmRelease: observability/loki ConfigMap: observability/loki-gateway

+++ HelmRelease: observability/loki ConfigMap: observability/loki-gateway

@@ -1,66 +0,0 @@

----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: loki-gateway
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: gateway
-data:
-  nginx.conf: "worker_processes  5;  ## Default: 1\nerror_log  /dev/stderr;\npid \
-    \       /tmp/nginx.pid;\nworker_rlimit_nofile 8192;\n\nevents {\n  worker_connections\
-    \  4096;  ## Default: 1024\n}\n\nhttp {\n  client_body_temp_path /tmp/client_temp;\n\
-    \  proxy_temp_path       /tmp/proxy_temp_path;\n  fastcgi_temp_path     /tmp/fastcgi_temp;\n\
-    \  uwsgi_temp_path       /tmp/uwsgi_temp;\n  scgi_temp_path        /tmp/scgi_temp;\n\
-    \n  client_max_body_size  4M;\n\n  proxy_read_timeout    600; ## 10 minutes\n\
-    \  proxy_send_timeout    600;\n  proxy_connect_timeout 600;\n\n  proxy_http_version\
-    \    1.1;\n\n  default_type application/octet-stream;\n  log_format   main '$remote_addr\
-    \ - $remote_user [$time_local]  $status '\n        '\"$request\" $body_bytes_sent\
-    \ \"$http_referer\" '\n        '\"$http_user_agent\" \"$http_x_forwarded_for\"\
-    ';\n  access_log   /dev/stderr  main;\n\n  sendfile     on;\n  tcp_nopush   on;\n\
-    \  resolver kube-dns.kube-system.svc.cluster.local.;\n  \n\n  server {\n    listen\
-    \             8080;\n    listen             [::]:8080;\n\n    location = / {\n\
-    \      return 200 'OK';\n      auth_basic off;\n    }\n\n    ########################################################\n\
-    \    # Configure backend targets# Distributor\n    location = /api/prom/push {\n\
-    \      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /loki/api/v1/push {\n      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /distributor/ring {\n      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /otlp/v1/logs {\n      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n\n    # Ingester\n    location = /flush {\n      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location ^~ /ingester/ {\n      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /ingester {\n      internal;        # to suppress 301\n\
-    \    }\n\n    # Ring\n    location = /ring {\n      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n\n    # MemberListKV\n    location = /memberlist {\n      proxy_pass \
-    \      http://loki-write.observability.svc.cluster.local:3100$request_uri;\n \
-    \   }\n\n    # Ruler\n    location = /ruler/ring {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /api/prom/rules {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location ^~ /api/prom/rules/ {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /loki/api/v1/rules {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location ^~ /loki/api/v1/rules/ {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /prometheus/api/v1/alerts {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /prometheus/api/v1/rules {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n\n    # Compactor\n    location = /compactor/ring {\n      proxy_pass\
-    \       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /loki/api/v1/delete {\n      proxy_pass       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /loki/api/v1/cache/generation_numbers {\n      proxy_pass\
-    \       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n\n    # IndexGateway\n    location = /indexgateway/ring {\n      proxy_pass\
-    \       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n\n    # QueryScheduler\n    location = /scheduler/ring {\n      proxy_pass\
-    \       http://loki-backend.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n\n    # Config\n    location = /config {\n      proxy_pass       http://loki-write.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n\n\n    # QueryFrontend, Querier\n    location = /api/prom/tail {\n  \
-    \    proxy_pass       http://loki-read.observability.svc.cluster.local:3100$request_uri;\n\
-    \      proxy_set_header Upgrade $http_upgrade;\n      proxy_set_header Connection\
-    \ \"upgrade\";\n    }\n    location = /loki/api/v1/tail {\n      proxy_pass  \
-    \     http://loki-read.observability.svc.cluster.local:3100$request_uri;\n   \
-    \   proxy_set_header Upgrade $http_upgrade;\n      proxy_set_header Connection\
-    \ \"upgrade\";\n    }\n    location ^~ /api/prom/ {\n      proxy_pass       http://loki-read.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /api/prom {\n      internal;        # to suppress 301\n\
-    \    }\n    location ^~ /loki/api/v1/ {\n      proxy_pass       http://loki-read.observability.svc.cluster.local:3100$request_uri;\n\
-    \    }\n    location = /loki/api/v1 {\n      internal;        # to suppress 301\n\
-    \    }\n  }\n}\n"
-
--- HelmRelease: observability/loki Service: observability/loki-query-scheduler-discovery

+++ HelmRelease: observability/loki Service: observability/loki-query-scheduler-discovery

@@ -1,29 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-query-scheduler-discovery
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: backend
-    prometheus.io/service-monitor: 'false'
-spec:
-  type: ClusterIP
-  clusterIP: None
-  publishNotReadyAddresses: true
-  ports:
-  - name: http-metrics
-    port: 3100
-    targetPort: http-metrics
-    protocol: TCP
-  - name: grpc
-    port: 9095
-    targetPort: grpc
-    protocol: TCP
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: backend
-
--- HelmRelease: observability/loki Service: observability/loki-backend-headless

+++ HelmRelease: observability/loki Service: observability/loki-backend-headless

@@ -1,29 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-backend-headless
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: backend
-    variant: headless
-    prometheus.io/service-monitor: 'false'
-spec:
-  type: ClusterIP
-  clusterIP: None
-  ports:
-  - name: http-metrics
-    port: 3100
-    targetPort: http-metrics
-    protocol: TCP
-  - name: grpc
-    port: 9095
-    targetPort: grpc
-    protocol: TCP
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: backend
-
--- HelmRelease: observability/loki Service: observability/loki-backend

+++ HelmRelease: observability/loki Service: observability/loki-backend

@@ -1,27 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-backend
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: backend
-spec:
-  type: ClusterIP
-  ports:
-  - name: http-metrics
-    port: 3100
-    targetPort: http-metrics
-    protocol: TCP
-  - name: grpc
-    port: 9095
-    targetPort: grpc
-    protocol: TCP
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: backend
-
--- HelmRelease: observability/loki Service: observability/loki-chunks-cache

+++ HelmRelease: observability/loki Service: observability/loki-chunks-cache

@@ -1,26 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-chunks-cache
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: memcached-chunks-cache
-  namespace: observability
-spec:
-  type: ClusterIP
-  clusterIP: None
-  ports:
-  - name: memcached-client
-    port: 11211
-    targetPort: 11211
-  - name: http-metrics
-    port: 9150
-    targetPort: 9150
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: memcached-chunks-cache
-
--- HelmRelease: observability/loki Service: observability/loki-gateway

+++ HelmRelease: observability/loki Service: observability/loki-gateway

@@ -1,24 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-gateway
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: gateway
-    prometheus.io/service-monitor: 'false'
-spec:
-  type: ClusterIP
-  ports:
-  - name: http-metrics
-    port: 80
-    targetPort: http-metrics
-    protocol: TCP
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: gateway
-
--- HelmRelease: observability/loki Service: observability/loki-read-headless

+++ HelmRelease: observability/loki Service: observability/loki-read-headless

@@ -1,30 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-read-headless
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: read
-    variant: headless
-    prometheus.io/service-monitor: 'false'
-spec:
-  type: ClusterIP
-  clusterIP: None
-  ports:
-  - name: http-metrics
-    port: 3100
-    targetPort: http-metrics
-    protocol: TCP
-  - name: grpc
-    port: 9095
-    targetPort: grpc
-    protocol: TCP
-    appProtocol: tcp
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: read
-
--- HelmRelease: observability/loki Service: observability/loki-read

+++ HelmRelease: observability/loki Service: observability/loki-read

@@ -1,27 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-read
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: read
-spec:
-  type: ClusterIP
-  ports:
-  - name: http-metrics
-    port: 3100
-    targetPort: http-metrics
-    protocol: TCP
-  - name: grpc
-    port: 9095
-    targetPort: grpc
-    protocol: TCP
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: read
-
--- HelmRelease: observability/loki Service: observability/loki-results-cache

+++ HelmRelease: observability/loki Service: observability/loki-results-cache

@@ -1,26 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-results-cache
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: memcached-results-cache
-  namespace: observability
-spec:
-  type: ClusterIP
-  clusterIP: None
-  ports:
-  - name: memcached-client
-    port: 11211
-    targetPort: 11211
-  - name: http-metrics
-    port: 9150
-    targetPort: 9150
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: memcached-results-cache
-
--- HelmRelease: observability/loki Service: observability/loki-write-headless

+++ HelmRelease: observability/loki Service: observability/loki-write-headless

@@ -1,30 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-write-headless
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: write
-    variant: headless
-    prometheus.io/service-monitor: 'false'
-spec:
-  type: ClusterIP
-  clusterIP: None
-  ports:
-  - name: http-metrics
-    port: 3100
-    targetPort: http-metrics
-    protocol: TCP
-  - name: grpc
-    port: 9095
-    targetPort: grpc
-    protocol: TCP
-    appProtocol: tcp
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: write
-
--- HelmRelease: observability/loki Service: observability/loki-write

+++ HelmRelease: observability/loki Service: observability/loki-write

@@ -1,27 +0,0 @@

----
-apiVersion: v1
-kind: Service
-metadata:
-  name: loki-write
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: write
-spec:
-  type: ClusterIP
-  ports:
-  - name: http-metrics
-    port: 3100
-    targetPort: http-metrics
-    protocol: TCP
-  - name: grpc
-    port: 9095
-    targetPort: grpc
-    protocol: TCP
-  selector:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/component: write
-
--- HelmRelease: observability/loki Deployment: observability/loki-gateway

+++ HelmRelease: observability/loki Deployment: observability/loki-gateway

@@ -1,82 +0,0 @@

----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: loki-gateway
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: gateway
-spec:
-  replicas: 2
-  strategy:
-    type: RollingUpdate
-  revisionHistoryLimit: 10
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: gateway
-  template:
-    metadata:
-      annotations:
-        secret.reloader.stakater.com/reload: loki-s3
-      labels:
-        app.kubernetes.io/name: loki
-        app.kubernetes.io/instance: loki
-        app.kubernetes.io/component: gateway
-    spec:
-      serviceAccountName: loki
-      enableServiceLinks: true
-      securityContext:
-        fsGroup: 101
-        runAsGroup: 101
-        runAsNonRoot: true
-        runAsUser: 101
-      terminationGracePeriodSeconds: 30
-      containers:
-      - name: nginx
-        image: ghcr.io/nginxinc/nginx-unprivileged:1.27-alpine
-        imagePullPolicy: IfNotPresent
-        ports:
-        - name: http-metrics
-          containerPort: 8080
-          protocol: TCP
-        readinessProbe:
-          httpGet:
-            path: /
-            port: http-metrics
-          initialDelaySeconds: 15
-          timeoutSeconds: 1
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-        volumeMounts:
-        - name: config
-          mountPath: /etc/nginx
-        - name: tmp
-          mountPath: /tmp
-        - name: docker-entrypoint-d-override
-          mountPath: /docker-entrypoint.d
-        resources: {}
-      affinity:
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchLabels:
-                app.kubernetes.io/component: gateway
-            topologyKey: kubernetes.io/hostname
-      volumes:
-      - name: config
-        configMap:
-          name: loki-gateway
-      - name: tmp
-        emptyDir: {}
-      - name: docker-entrypoint-d-override
-        emptyDir: {}
-
--- HelmRelease: observability/loki Deployment: observability/loki-read

+++ HelmRelease: observability/loki Deployment: observability/loki-read

@@ -1,108 +0,0 @@

----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: loki-read
-  namespace: observability
-  labels:
-    app.kubernetes.io/part-of: memberlist
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: read
-spec:
-  replicas: 2
-  strategy:
-    rollingUpdate:
-      maxSurge: 0
-      maxUnavailable: 1
-  revisionHistoryLimit: 10
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: read
-  template:
-    metadata:
-      annotations:
-        secret.reloader.stakater.com/reload: loki-s3
-      labels:
-        app.kubernetes.io/part-of: memberlist
-        app.kubernetes.io/name: loki
-        app.kubernetes.io/instance: loki
-        app.kubernetes.io/component: read
-    spec:
-      serviceAccountName: loki
-      automountServiceAccountToken: true
-      securityContext:
-        fsGroup: 10001
-        runAsGroup: 10001
-        runAsNonRoot: true
-        runAsUser: 10001
-      terminationGracePeriodSeconds: 30
-      containers:
-      - name: loki
-        image: docker.io/grafana/loki:3.1.1
-        imagePullPolicy: IfNotPresent
-        args:
-        - -config.file=/etc/loki/config/config.yaml
-        - -target=read
-        - -legacy-read-mode=false
-        - -common.compactor-grpc-address=loki-backend.observability.svc.cluster.local:9095
-        ports:
-        - name: http-metrics
-          containerPort: 3100
-          protocol: TCP
-        - name: grpc
-          containerPort: 9095
-          protocol: TCP
-        - name: http-memberlist
-          containerPort: 7946
-          protocol: TCP
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-        readinessProbe:
-          httpGet:
-            path: /ready
-            port: http-metrics
-          initialDelaySeconds: 30
-          timeoutSeconds: 1
-        volumeMounts:
-        - name: config
-          mountPath: /etc/loki/config
-        - name: runtime-config
-          mountPath: /etc/loki/runtime-config
-        - name: tmp
-          mountPath: /tmp
-        - name: data
-          mountPath: /var/loki
-        resources: {}
-      affinity:
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchLabels:
-                app.kubernetes.io/component: read
-            topologyKey: kubernetes.io/hostname
-      volumes:
-      - name: tmp
-        emptyDir: {}
-      - name: data
-        emptyDir: {}
-      - name: config
-        configMap:
-          name: loki
-          items:
-          - key: config.yaml
-            path: config.yaml
-      - name: runtime-config
-        configMap:
-          name: loki-runtime
-      - configMap:
-          name: loki-alerting-rules
-        name: loki-rules
-
--- HelmRelease: observability/loki StatefulSet: observability/loki-backend

+++ HelmRelease: observability/loki StatefulSet: observability/loki-backend

@@ -1,148 +0,0 @@

----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
-  name: loki-backend
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: backend
-    app.kubernetes.io/part-of: memberlist
-spec:
-  replicas: 2
-  podManagementPolicy: Parallel
-  updateStrategy:
-    rollingUpdate:
-      partition: 0
-  serviceName: loki-backend-headless
-  revisionHistoryLimit: 10
-  persistentVolumeClaimRetentionPolicy:
-    whenDeleted: Delete
-    whenScaled: Delete
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: backend
-  template:
-    metadata:
-      annotations:
-        secret.reloader.stakater.com/reload: loki-s3
-      labels:
-        app.kubernetes.io/name: loki
-        app.kubernetes.io/instance: loki
-        app.kubernetes.io/component: backend
-        app.kubernetes.io/part-of: memberlist
-    spec:
-      serviceAccountName: loki
-      automountServiceAccountToken: true
-      securityContext:
-        fsGroup: 10001
-        runAsGroup: 10001
-        runAsNonRoot: true
-        runAsUser: 10001
-      terminationGracePeriodSeconds: 300
-      containers:
-      - name: loki-sc-rules
-        image: kiwigrid/k8s-sidecar:1.27.5
-        imagePullPolicy: IfNotPresent
-        env:
-        - name: METHOD
-          value: WATCH
-        - name: LABEL
-          value: loki_rule
-        - name: FOLDER
-          value: /rules/fake
-        - name: RESOURCE
-          value: both
-        - name: NAMESPACE
-          value: ALL
-        - name: WATCH_SERVER_TIMEOUT
-          value: '60'
-        - name: WATCH_CLIENT_TIMEOUT
-          value: '60'
-        - name: LOG_LEVEL
-          value: INFO
-        volumeMounts:
-        - name: sc-rules-volume
-          mountPath: /rules/fake
-      - name: loki
-        image: docker.io/grafana/loki:3.1.1
-        imagePullPolicy: IfNotPresent
-        args:
-        - -config.file=/etc/loki/config/config.yaml
-        - -target=backend
-        - -legacy-read-mode=false
-        ports:
-        - name: http-metrics
-          containerPort: 3100
-          protocol: TCP
-        - name: grpc
-          containerPort: 9095
-          protocol: TCP
-        - name: http-memberlist
-          containerPort: 7946
-          protocol: TCP
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-        readinessProbe:
-          httpGet:
-            path: /ready
-            port: http-metrics
-          initialDelaySeconds: 30
-          timeoutSeconds: 1
-        volumeMounts:
-        - name: config
-          mountPath: /etc/loki/config
-        - name: runtime-config
-          mountPath: /etc/loki/runtime-config
-        - name: tmp
-          mountPath: /tmp
-        - name: data
-          mountPath: /var/loki
-        - name: sc-rules-volume
-          mountPath: /rules/fake
-        resources: {}
-      affinity:
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchLabels:
-                app.kubernetes.io/component: backend
-            topologyKey: kubernetes.io/hostname
-      volumes:
-      - name: tmp
-        emptyDir: {}
-      - name: config
-        configMap:
-          name: loki
-          items:
-          - key: config.yaml
-            path: config.yaml
-      - name: runtime-config
-        configMap:
-          name: loki-runtime
-      - name: sc-rules-volume
-        emptyDir: {}
-      - configMap:
-          name: loki-alerting-rules
-        name: loki-rules
-  volumeClaimTemplates:
-  - apiVersion: v1
-    kind: PersistentVolumeClaim
-    metadata:
-      name: data
-    spec:
-      accessModes:
-      - ReadWriteOnce
-      storageClassName: openebs-hostpath
-      resources:
-        requests:
-          storage: 20Gi
-
--- HelmRelease: observability/loki StatefulSet: observability/loki-chunks-cache

+++ HelmRelease: observability/loki StatefulSet: observability/loki-chunks-cache

@@ -1,92 +0,0 @@

----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
-  name: loki-chunks-cache
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: memcached-chunks-cache
-    name: memcached-chunks-cache
-  namespace: observability
-spec:
-  podManagementPolicy: Parallel
-  replicas: 1
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: memcached-chunks-cache
-      name: memcached-chunks-cache
-  updateStrategy:
-    type: RollingUpdate
-  serviceName: loki-chunks-cache
-  template:
-    metadata:
-      labels:
-        app.kubernetes.io/name: loki
-        app.kubernetes.io/instance: loki
-        app.kubernetes.io/component: memcached-chunks-cache
-        name: memcached-chunks-cache
-      annotations: null
-    spec:
-      serviceAccountName: loki
-      securityContext:
-        fsGroup: 11211
-        runAsGroup: 11211
-        runAsNonRoot: true
-        runAsUser: 11211
-      initContainers: []
-      nodeSelector: {}
-      affinity: {}
-      topologySpreadConstraints: []
-      tolerations: []
-      terminationGracePeriodSeconds: 60
-      containers:
-      - name: memcached
-        image: memcached:1.6.23-alpine
-        imagePullPolicy: IfNotPresent
-        resources:
-          limits:
-            memory: 9830Mi
-          requests:
-            cpu: 500m
-            memory: 9830Mi
-        ports:
-        - containerPort: 11211
-          name: client
-        args:
-        - -m 8192
-        - --extended=modern,track_sizes
-        - -I 5m
-        - -c 16384
-        - -v
-        - -u 11211
-        env: null
-        envFrom: null
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-      - name: exporter
-        image: prom/memcached-exporter:v0.14.2
-        imagePullPolicy: IfNotPresent
-        ports:
-        - containerPort: 9150
-          name: http-metrics
-        args:
-        - --memcached.address=localhost:11211
-        - --web.listen-address=0.0.0.0:9150
-        resources:
-          limits: {}
-          requests: {}
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-
--- HelmRelease: observability/loki StatefulSet: observability/loki-results-cache

+++ HelmRelease: observability/loki StatefulSet: observability/loki-results-cache

@@ -1,92 +0,0 @@

----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
-  name: loki-results-cache
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: memcached-results-cache
-    name: memcached-results-cache
-  namespace: observability
-spec:
-  podManagementPolicy: Parallel
-  replicas: 1
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: memcached-results-cache
-      name: memcached-results-cache
-  updateStrategy:
-    type: RollingUpdate
-  serviceName: loki-results-cache
-  template:
-    metadata:
-      labels:
-        app.kubernetes.io/name: loki
-        app.kubernetes.io/instance: loki
-        app.kubernetes.io/component: memcached-results-cache
-        name: memcached-results-cache
-      annotations: null
-    spec:
-      serviceAccountName: loki
-      securityContext:
-        fsGroup: 11211
-        runAsGroup: 11211
-        runAsNonRoot: true
-        runAsUser: 11211
-      initContainers: []
-      nodeSelector: {}
-      affinity: {}
-      topologySpreadConstraints: []
-      tolerations: []
-      terminationGracePeriodSeconds: 60
-      containers:
-      - name: memcached
-        image: memcached:1.6.23-alpine
-        imagePullPolicy: IfNotPresent
-        resources:
-          limits:
-            memory: 1229Mi
-          requests:
-            cpu: 500m
-            memory: 1229Mi
-        ports:
-        - containerPort: 11211
-          name: client
-        args:
-        - -m 1024
-        - --extended=modern,track_sizes
-        - -I 5m
-        - -c 16384
-        - -v
-        - -u 11211
-        env: null
-        envFrom: null
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-      - name: exporter
-        image: prom/memcached-exporter:v0.14.2
-        imagePullPolicy: IfNotPresent
-        ports:
-        - containerPort: 9150
-          name: http-metrics
-        args:
-        - --memcached.address=localhost:11211
-        - --web.listen-address=0.0.0.0:9150
-        resources:
-          limits: {}
-          requests: {}
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-
--- HelmRelease: observability/loki StatefulSet: observability/loki-write

+++ HelmRelease: observability/loki StatefulSet: observability/loki-write

@@ -1,111 +0,0 @@

----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
-  name: loki-write
-  namespace: observability
-  labels:
-    app.kubernetes.io/name: loki
-    app.kubernetes.io/instance: loki
-    app.kubernetes.io/managed-by: Helm
-    app.kubernetes.io/component: write
-    app.kubernetes.io/part-of: memberlist
-spec:
-  replicas: 2
-  podManagementPolicy: Parallel
-  updateStrategy:
-    rollingUpdate:
-      partition: 0
-  serviceName: loki-write-headless
-  revisionHistoryLimit: 10
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: loki
-      app.kubernetes.io/instance: loki
-      app.kubernetes.io/component: write
-  template:
-    metadata:
-      annotations:
-        secret.reloader.stakater.com/reload: loki-s3
-      labels:
-        app.kubernetes.io/name: loki
-        app.kubernetes.io/instance: loki
-        app.kubernetes.io/component: write
-        app.kubernetes.io/part-of: memberlist
-    spec:
-      serviceAccountName: loki
-      automountServiceAccountToken: true
-      enableServiceLinks: true
-      securityContext:
-        fsGroup: 10001
-        runAsGroup: 10001
-        runAsNonRoot: true
-        runAsUser: 10001
-      terminationGracePeriodSeconds: 300
-      containers:
-      - name: loki
-        image: docker.io/grafana/loki:3.1.1
-        imagePullPolicy: IfNotPresent
-        args:
-        - -config.file=/etc/loki/config/config.yaml
-        - -target=write
-        ports:
-        - name: http-metrics
-          containerPort: 3100
-          protocol: TCP
-        - name: grpc
-          containerPort: 9095
-          protocol: TCP
-        - name: http-memberlist
-          containerPort: 7946
-          protocol: TCP
-        securityContext:
-          allowPrivilegeEscalation: false
-          capabilities:
-            drop:
-            - ALL
-          readOnlyRootFilesystem: true
-        readinessProbe:
-          httpGet:
-            path: /ready
-            port: http-metrics
-          initialDelaySeconds: 30
-          timeoutSeconds: 1
-        volumeMounts:
-        - name: config
-          mountPath: /etc/loki/config
-        - name: runtime-config
-          mountPath: /etc/loki/runtime-config
-        - name: data
-          mountPath: /var/loki
-        resources: {}
-      affinity:
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchLabels:
-                app.kubernetes.io/component: write
-            topologyKey: kubernetes.io/hostname
-      volumes:
-      - name: config
-        configMap:
-          name: loki
-          items:
-          - key: config.yaml
-            path: config.yaml
-      - name: runtime-config
-        configMap:
-          name: loki-runtime
-  volumeClaimTemplates:
-  - apiVersion: v1
-    kind: PersistentVolumeClaim
-    metadata:
-      name: data
-    spec:
-      accessModes:
-      - ReadWriteOnce
-      storageClassName: openebs-hostpath
-      resources:
-        requests:
-          storage: 20Gi
-
--- HelmRelease: observability/loki Service: observability/loki-headless

+++ HelmRelease: observability/loki Service: observability/loki-headless

@@ -0,0 +1,23 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: loki-headless
+  namespace: observability
+  labels:
+    app.kubernetes.io/name: loki
+    app.kubernetes.io/instance: loki
+    app.kubernetes.io/managed-by: Helm
+    variant: headless
+    prometheus.io/service-monitor: 'false'
+spec:
+  clusterIP: None
+  ports:
+  - name: http-metrics
+    port: 3100
+    targetPort: http-metrics
+    protocol: TCP
+  selector:
+    app.kubernetes.io/name: loki
+    app.kubernetes.io/instance: loki
+
--- HelmRelease: observability/loki Service: observability/loki

+++ HelmRelease: observability/loki Service: observability/loki

@@ -0,0 +1,26 @@

+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: loki
+  namespace: observability
+  labels:
+    app.kubernetes.io/name: loki
+    app.kubernetes.io/instance: loki
+    app.kubernetes.io/managed-by: Helm
+spec:
+  type: ClusterIP
+  ports:
+  - name: http-metrics
+    port: 3100
+    targetPort: http-metrics
+    protocol: TCP
+  - name: grpc
+    port: 9095
+    targetPort: grpc
+    protocol: TCP
+  selector:
+    app.kubernetes.io/name: loki
+    app.kubernetes.io/instance: loki
+    app.kubernetes.io/component: single-binary
+
--- HelmRelease: observability/loki StatefulSet: observability/loki

+++ HelmRelease: observability/loki StatefulSet: observability/loki

@@ -0,0 +1,151 @@

+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: loki
+  namespace: observability
+  labels:
+    app.kubernetes.io/name: loki
+    app.kubernetes.io/instance: loki
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/component: single-binary
+    app.kubernetes.io/part-of: memberlist
+spec:
+  replicas: 2
+  podManagementPolicy: Parallel
+  updateStrategy:
+    rollingUpdate:
+      partition: 0
+  serviceName: loki-headless
+  revisionHistoryLimit: 10
+  persistentVolumeClaimRetentionPolicy:
+    whenDeleted: Delete
+    whenScaled: Delete
+  selector:
+    matchLabels:
+      app.kubernetes.io/name: loki
+      app.kubernetes.io/instance: loki
+      app.kubernetes.io/component: single-binary
+  template:
+    metadata:
+      annotations:
+        secret.reloader.stakater.com/reload: loki-s3
+      labels:
+        app.kubernetes.io/name: loki
+        app.kubernetes.io/instance: loki
+        app.kubernetes.io/component: single-binary
+        app.kubernetes.io/part-of: memberlist
+    spec:
+      serviceAccountName: loki
+      automountServiceAccountToken: true
+      enableServiceLinks: true
+      securityContext:
+        fsGroup: 10001
+        runAsGroup: 10001
+        runAsNonRoot: true
+        runAsUser: 10001
+      terminationGracePeriodSeconds: 30
+      containers:
+      - name: loki-sc-rules
+        image: kiwigrid/k8s-sidecar:1.27.5
+        imagePullPolicy: IfNotPresent
+        env:
+        - name: METHOD
+          value: WATCH
+        - name: LABEL
+          value: loki_rule
+        - name: FOLDER
+          value: /rules/fake
+        - name: RESOURCE
+          value: both
+        - name: NAMESPACE
+          value: ALL
+        - name: WATCH_SERVER_TIMEOUT
+          value: '60'
+        - name: WATCH_CLIENT_TIMEOUT
+          value: '60'
+        - name: LOG_LEVEL
+          value: INFO
+        volumeMounts:
+        - name: sc-rules-volume
+          mountPath: /rules/fake
+      - name: loki
+        image: docker.io/grafana/loki:3.1.1
+        imagePullPolicy: IfNotPresent
+        args:
+        - -config.file=/etc/loki/config/config.yaml
+        - -target=all
+        ports:
+        - name: http-metrics
+          containerPort: 3100
+          protocol: TCP
+        - name: grpc
+          containerPort: 9095
+          protocol: TCP
+        - name: http-memberlist
+          containerPort: 7946
+          protocol: TCP
+        securityContext:
+          allowPrivilegeEscalation: false
+          capabilities:
+            drop:
+            - ALL
+          readOnlyRootFilesystem: true
+        readinessProbe:
+          httpGet:
+            path: /ready
+            port: http-metrics
+          initialDelaySeconds: 30
+          timeoutSeconds: 1
+        volumeMounts:
+        - name: tmp
+          mountPath: /tmp
+        - name: config
+          mountPath: /etc/loki/config
+        - name: runtime-config
+          mountPath: /etc/loki/runtime-config
+        - name: storage
+          mountPath: /var/loki
+        - name: sc-rules-volume
+          mountPath: /rules/fake
+        resources:
+          requests:
+            cpu: 10m
+            memory: 100Mi
+      affinity:
+        podAntiAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+          - labelSelector:
+              matchLabels:
+                app.kubernetes.io/component: single-binary
+            topologyKey: kubernetes.io/hostname
+      volumes:
+      - name: tmp
+        emptyDir: {}
+      - name: config
+        configMap:
+          name: loki
+          items:
+          - key: config.yaml
+            path: config.yaml
+      - name: runtime-config
+        configMap:
+          name: loki-runtime
+      - name: sc-rules-volume
+        emptyDir: {}
+      - configMap:
+          name: loki-alerting-rules
+        name: loki-rules
+  volumeClaimTemplates:
+  - apiVersion: v1
+    kind: PersistentVolumeClaim
+    metadata:
+      name: storage
+    spec:
+      accessModes:
+      - ReadWriteOnce
+      storageClassName: openebs-hostpath
+      resources:
+        requests:
+          storage: 20Gi
+

Copy link

sonarcloud bot commented Sep 29, 2024

@jazzlyn jazzlyn marked this pull request as ready for review September 29, 2024 22:27
@tyriis-automation
Copy link
Contributor

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ EDITORCONFIG editorconfig-checker 3 0 0.02s
✅ REPOSITORY gitleaks yes no 2.72s
✅ YAML prettier 3 0 0.57s
✅ YAML yamllint 3 0 0.32s

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security

@jazzlyn
Copy link
Collaborator Author

jazzlyn commented Sep 29, 2024

FINALLY 🎉🎉🎉

@jazzlyn jazzlyn requested a review from tyriis September 29, 2024 22:29
Copy link
Owner

@tyriis tyriis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets find out if this will work

@jazzlyn jazzlyn merged commit 36c427d into main Oct 14, 2024
15 checks passed
@jazzlyn jazzlyn deleted the feature/loki-single-binary branch October 14, 2024 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants